package com.mjf.spark.day08

import org.apache.spark.SparkConf
import org.apache.spark.sql.{DataFrame, SparkSession}

/**
 * 自定义UDF函数，在每一个查询的名字前，加问候语
 */
object SparkSQL02_UDF {
  def main(args: Array[String]): Unit = {

    // 创建SparkConf配置文件对象
    val conf: SparkConf = new SparkConf().setAppName("SparkSQL").setMaster("local[*]")

    // 创建SparkSQL执行的入口对象  SparkSession
    val spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()

    // 读取json文件，创建DataFrame
    val df: DataFrame = spark.read.json("D:\\code\\spark\\input\\test.json")

    // 注册自定义函数
    spark.udf.register("addSayHi", (name: String) => {"Hi:" + name})

    // 创建临时视图
    df.createOrReplaceTempView("user")

    // 通过SQL语句，从临时视图查询数据
    spark.sql("select addSayHi(name) name,age from user").show()

    // 释放资源
    spark.close()

  }
}
